package com.situ.mall.web.controller;


import com.situ.mall.common.entity.Member;
import com.situ.mall.common.exception.MyException;
import com.situ.mall.common.mapper.MemberMapper;
import com.situ.mall.common.service.IMemberService;
import com.situ.mall.common.util.StringUtil;
import com.situ.mall.common.vo.ResultVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author author
 * @since 2024-01-29
 */
@RestController
@RequestMapping("/client")
public class MemberController {

    @Autowired
    private IMemberService memberService;

    @Autowired
    private MemberMapper memberMapper;

    //编辑个人资料
    @PostMapping("/member/changeMemberInfo")
    public ResultVO updateInfo(Member member) {
        System.out.println(member);

        //1.判断手机号格式是否正确
        StringUtil.checkTel(member.getTel());

        //2.判断手机号是否被使用
        // 先根据传过来的用户的手机号去数据库查，如果查到了，把查到的用户id和传过来的用户id作比较，如果一致就继续，如果不一致就报错
        Member m = memberMapper.selectByTel(member.getTel());
        if(m != null) {
            if (!m.getId().equals(member.getId())) {
                throw new MyException("手机号已被注册");
            }
        }

        //3.判断身份证号格式是否正确（非空时才判断）
        if(StringUtil.isNotBlank(member.getIdCardNumber())) {
            StringUtil.checkIdCardNumber(member.getIdCardNumber());
        }

        memberMapper.updateInfo(member);

        //再查一遍，返回
        return ResultVO.data(200, "请求成功", memberService.getById(member.getId()));
    }

}
